package com.huxin.utlis;


import java.util.ArrayList;
import java.util.List;

/**
 * 自定义List分页工具类
 */
public class PageUtils {

    /**
     * 开始分页
     * @param objectList 分页对象
     * @param pageNum    页码
     * @param pageSize   每页数据条数
     * @return
     */
    public static List startPage(List objectList, Integer pageNum, Integer pageSize) {
        if (null==objectList) {
            return new ArrayList();
        }
        //防止起始索引为负数，程序抛出IndexOutOfBoundsException
        if (pageNum <= 0){
            pageNum = 1;
        }

        // 总记录数
        Integer totalCount = objectList.size();
        // 开始索引
        int fromIndex = (pageNum - 1) * pageSize;;
        // 结束索引
        int endIndex = 0;

        //分页起始索引fromIndex不能大于结果集总记录数
        if(totalCount >= fromIndex) {
            endIndex = fromIndex + pageSize;
            //最后一条记录的索引大于总记录数
            if (endIndex > totalCount) {
                //结束索引为集合的最后一个元素索引
                endIndex = totalCount;
            }
        } else {
            return new ArrayList();
        }

        List pageList = objectList.subList(fromIndex, endIndex);
        return pageList;
    }
}